package com.wanmait.gohome.service;

import com.github.pagehelper.PageInfo;
import com.wanmait.gohome.pojo.Comment;
import com.wanmait.gohome.pojo.Task;
import com.wanmait.gohome.pojo.Userinfo;
import com.wanmait.gohome.util.Pager;

import java.util.List;

public interface TaskService extends CommonService<Task> {
    PageInfo<Task> selectTask();//查找发布的任务

    PageInfo<Task> findByUserId(Integer userId);   //个人中心  查看发布的任务

    PageInfo<Task> selectByUserId(Integer userId);   //个人中心  查看接收的任务

     PageInfo<Task> selectAllTask();//后台查询所有

    void insertTask(Task task);//发布任务

    void deleteByTaskId(Integer taskId);     //个人中心  删除任务

    PageInfo<Task> selectTaskByMarkId(Integer markId);//根据任务状态列出来

    Task findById(Integer id);//根据id 查找发布的任务 显示到详情页

    void updateBrowse(Integer id);//修改查看任务浏览数

    List<Task> findTodayHot(int count);    //  今日最热任务

    void clearTodayHot();   //清空redis数据

    //查询提交申请个数
    int getTaskCount();

    //审核任务
    PageInfo<Task> passTask();

    //同意
    void updatePass(Integer id);

    //拒绝
    void updateRefuse(Integer id);
    void updateFinish(Integer id);
    void updateFinishRefuse(Integer id);
    void insertReject(Task task);
    int getFinishCount();
    PageInfo<Task> finishTask();

    void insertTaskComments(Comment taskComments);//任务的发表评论 details.jsp

     PageInfo<Comment> findTaskComments(Integer id);//查找任务的评论

    List<Task> findByTitles(String title,Pager pager);//solr分页查询

    Integer findCountByUserId(Integer id);   //个人中心首页  查看发布任务数量

    void updateByTaskId(Task task);    //个人中心 修改任务

    void insertTaskMultistageComments(Comment multistageComments);//添加任务的评论(二级评论);

//    List<Comment>findTaskMultistageComments(Integer id);//查找任务的评论(二级评论);

    PageInfo<Task>selectStayAccept(Integer id);//查找待接受任务和已经接受的任务;

    void acceptTask(Integer userId, Integer taskId);    //接受任务

    void updateTaskComments(Integer id);//显示任务评论数 点击发布评论 评论数就加1；

    List<Comment> findTaskMultistageComments(Integer id);  //根据一级评论 查  二级评论

    PageInfo<Task> selectFinishByUserId(Integer id);   //个人中心 查看完成的任务
}
